package vista;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import controlador.Supermercado;
import javax.swing.*;

public class pantallaPrincipal extends JFrame{

	private Supermercado supermercado;
	private static final long serialVersionUID = 1L;
	private JMenuBar jmbMenuPrincipal;
	private JMenu jmProducto;
	private JMenuItem jmiNuevoProducto;
	private JMenuItem jmiBajaProducto;
	private JMenuItem jmiModificacionProducto;
	private JMenuItem jmiListarProducto;
	private JMenu jmTipoProducto;
	private JMenuItem jmiNuevoTipo;
	private JMenuItem jmiBajaTipo;
	private JMenuItem jmiModificacionTipo;
	private JMenuItem jmiListarProductosTipo;
	private JMenuItem jmiListarTipo;
	private JMenu jmFactura;
	private JMenuItem jmiVerFacturas;
	private JMenu jmVenta;
	private JMenuItem jmiNuevaVenta;
	private JMenuItem jmiListarVenta;
	private JMenuItem jmiFinalizarVenta;
	
	
	public pantallaPrincipal() {
		super();
		this.supermercado = new Supermercado();
		this.cargarVentana();
	}

	private void cargarVentana() {
		
		jmbMenuPrincipal = new JMenuBar();
		setTitle("Sistema de Supermercado");
		//Tipo Producto
		jmTipoProducto = new JMenu("Tipo de Producto");
		jmbMenuPrincipal.add(jmTipoProducto);
		jmiNuevoTipo= new JMenuItem("Nuevo Tipo Producto");
		jmTipoProducto.add(jmiNuevoTipo);
		jmiNuevoTipo.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent evt) {
				vNuevoTipoProducto vTipoProd = new vNuevoTipoProducto(supermercado);
				vTipoProd.setVisible(true);
			}
		});
		jmiBajaTipo= new JMenuItem("Baja Tipo Producto");
		jmTipoProducto.add(jmiBajaTipo);
		jmiBajaTipo.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent evt){
				vBajaTipoProducto vTipoProd = new vBajaTipoProducto(supermercado);
				vTipoProd.setVisible(true);
			}
		});
		jmiModificacionTipo= new JMenuItem("Modificacion Tipo Producto");
		jmTipoProducto.add(jmiModificacionTipo);
		jmiModificacionTipo.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent evt){
				vModificarTipoProducto vTipoProd = new vModificarTipoProducto(supermercado);
				vTipoProd.setVisible(true);
			}
		});
		jmiListarTipo= new JMenuItem("Listar Tipo Producto");
		jmTipoProducto.add(jmiListarTipo);
		jmiListarTipo.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent evt){
				vListarTipos listarTipo = new vListarTipos(supermercado.getTiposDTO());
				listarTipo.setVisible(true);
			}
		});
		jmiListarProductosTipo = new JMenuItem("Listar Productos");
		jmTipoProducto.add(jmiListarProductosTipo);
		jmiListarProductosTipo.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent evt){
				vListarProductosTipo vlistarProd = new vListarProductosTipo(supermercado.getTiposDTO());
				vlistarProd.setVisible(true);
			}
		});
		//Producto
		jmProducto = new JMenu("Producto");
		jmbMenuPrincipal.add(jmProducto);
		jmiNuevoProducto= new JMenuItem("Nuevo Producto");
		jmProducto.add(jmiNuevoProducto);
		jmiNuevoProducto.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent evt) {
				vNuevoProducto vTipoProd = new vNuevoProducto(supermercado);
				vTipoProd.setVisible(true);
			}
		});
		jmiBajaProducto= new JMenuItem("Baja Producto");
		jmProducto.add(jmiBajaProducto);
		jmiBajaProducto.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent evt){
				vBajaProducto vTipoProd = new vBajaProducto(supermercado);
				vTipoProd.setVisible(true);
			}
		});
		jmiModificacionProducto= new JMenuItem("Modificacion Producto");
		jmProducto.add(jmiModificacionProducto);
		jmiModificacionProducto.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent evt){
				vModificarProducto vTipoProd = new vModificarProducto(supermercado);
				vTipoProd.setVisible(true);
			}
		});
		jmiListarProducto= new JMenuItem("Listar Producto");
		jmProducto.add(jmiListarProducto);
		jmiListarProducto.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent evt){
				vListarProducto listarTipo = new vListarProducto(supermercado.getProductoDTO());
				listarTipo.setVisible(true);
			}
		});
		//Venta
		jmVenta=new JMenu("Venta");
		jmiNuevaVenta = new JMenuItem("Nueva Venta");
		jmVenta.add(jmiNuevaVenta);
		jmbMenuPrincipal.add(jmVenta);
		jmiNuevaVenta.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent evt){
				vNuevaVenta vVenta = new vNuevaVenta(supermercado);
				vVenta.setVisible(true);
			}
		});
		jmiListarVenta = new JMenuItem("Lista Venta");
		jmVenta.add(jmiListarVenta);
		jmiListarVenta.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent evt){
				vListarVenta vListarVenta = new vListarVenta(supermercado.getFacTemp().crearFacturaDTO());
				vListarVenta.setVisible(true);
			}
		});
		jmiFinalizarVenta = new JMenuItem("Finalizar Venta");
		jmVenta.add(jmiFinalizarVenta);
		jmiFinalizarVenta.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent evt){
				vListarVenta vListar= new vListarVenta(supermercado.getFacTemp().crearFacturaDTO());
				vListar.setVisible(true);
				supermercado.cerrarVenta();
			}
		});
		setJMenuBar(jmbMenuPrincipal);
		setResizable(false);
		setSize(700, 450);
		setVisible(true);
	}

	public static void main(String[] args) {
		pantallaPrincipal pantalla = new pantallaPrincipal();
		pantalla.setVisible(true);

	}

	public Supermercado getSupermercado() {
		return supermercado;
	}

	public void setSupermercado(Supermercado supermercado) {
		this.supermercado = supermercado;
	}

	public JMenu getJmTipoProducto() {
		return jmTipoProducto;
	}

	public void setJmTipoProducto(JMenu jmTipoProducto) {
		this.jmTipoProducto = jmTipoProducto;
	}

	public JMenuItem getJmiNuevoProducto() {
		return jmiNuevoProducto;
	}

	public void setJmiNuevoProducto(JMenuItem jmiNuevoProducto) {
		this.jmiNuevoProducto = jmiNuevoProducto;
	}

	public JMenuItem getJmiBajaProducto() {
		return jmiBajaProducto;
	}

	public void setJmiBajaProducto(JMenuItem jmiBajaProducto) {
		this.jmiBajaProducto = jmiBajaProducto;
	}

	public JMenuItem getJmiModificacionProducto() {
		return jmiModificacionProducto;
	}

	public void setJmiModificacionProducto(JMenuItem jmiModificacionProducto) {
		this.jmiModificacionProducto = jmiModificacionProducto;
	}

	public JMenuItem getJmiNuevoTipo() {
		return jmiNuevoTipo;
	}

	public void setJmiNuevoTipo(JMenuItem jmiNuevoTipo) {
		this.jmiNuevoTipo = jmiNuevoTipo;
	}

	public JMenuItem getJmiBajaTipo() {
		return jmiBajaTipo;
	}

	public void setJmiBajaTipo(JMenuItem jmiBajaTipo) {
		this.jmiBajaTipo = jmiBajaTipo;
	}

	public JMenuItem getJmiModificacionTipo() {
		return jmiModificacionTipo;
	}

	public void setJmiModificacionTipo(JMenuItem jmiModificacionTipo) {
		this.jmiModificacionTipo = jmiModificacionTipo;
	}

	public JMenu getJmFactura() {
		return jmFactura;
	}

	public void setJmFactura(JMenu jmFactura) {
		this.jmFactura = jmFactura;
	}

	public JMenuItem getJmiVerFacturas() {
		return jmiVerFacturas;
	}

	public void setJmiVerFacturas(JMenuItem jmiVerFacturas) {
		this.jmiVerFacturas = jmiVerFacturas;
	}

	public JMenuItem getJmiNuevaVenta() {
		return jmiNuevaVenta;
	}

	public void setJmiNuevaVenta(JMenuItem jmiNuevaVenta) {
		this.jmiNuevaVenta = jmiNuevaVenta;
	}

	public JMenuItem getJmiFinalizarVenta() {
		return jmiFinalizarVenta;
	}

	public void setJmiFinalizarVenta(JMenuItem jmiFinalizarVenta) {
		this.jmiFinalizarVenta = jmiFinalizarVenta;
	}

	public static long getSerialversionuid() {
		return serialVersionUID;
	}

}
